{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "XT2oM6FHVJCf"
   },
   "source": [
    "## Enviroment:\n",
    "\n",
    "Open AI gym [CartPole v0](https://github.com/openai/gym/wiki/CartPole-v0)\n",
    "\n",
    "### Observation\n",
    "\n",
    "Type: Box(4)\n",
    "\n",
    "| Num  | Observation          | Min      | Max     |\n",
    "| :--- | :------------------- | :------- | :------ |\n",
    "| 0    | Cart Position        | -2.4     | 2.4     |\n",
    "| 1    | Cart Velocity        | -Inf     | Inf     |\n",
    "| 2    | Pole Angle           | ~ -41.8° | ~ 41.8° |\n",
    "| 3    | Pole Velocity At Tip | -Inf     | Inf     |\n",
    "\n",
    "### Actions\n",
    "\n",
    "Type: Discrete(2)\n",
    "\n",
    "| Num  | Action                 |\n",
    "| :--- | :--------------------- |\n",
    "| 0    | Push cart to the left  |\n",
    "| 1    | Push cart to the right |\n",
    "\n",
    "Note: The amount the velocity is reduced or increased is not fixed as it depends on the angle the pole is pointing. This is because the center of gravity of the pole increases the amount of energy needed to move the cart underneath it\n",
    "\n",
    "### Reward\n",
    "\n",
    "Reward is 1 for every step taken, including the termination step\n",
    "\n",
    "### Starting State\n",
    "\n",
    "All observations are assigned a uniform random value between ±0.05\n",
    "\n",
    "### Episode Termination\n",
    "\n",
    "1. Pole Angle is more than ±12°\n",
    "2. Cart Position is more than ±2.4 (center of the cart reaches the edge of the display)\n",
    "3. Episode length is greater than 200\n",
    "\n",
    "### Solved Requirements\n",
    "\n",
    "Considered solved when the average reward is greater than or equal to 195.0 over 100 consecutive trials"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "xzVWtGxJVJCh"
   },
   "source": [
    "## 1. gym enviroment setup"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 34
    },
    "colab_type": "code",
    "id": "G312rzBjVJCi",
    "outputId": "9565b775-bc04-4b5b-d510-c5461a6c5233"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 0.01212204,  0.00559549,  0.03346642, -0.01407475])"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import gym\n",
    "import numpy as np\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "env = gym.make(\"CartPole-v0\")\n",
    "env.reset()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "80YCNcHUZYtI"
   },
   "outputs": [],
   "source": [
    "import tensorflow as tf\n",
    "from tqdm import tqdm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "IjkusASudj9W"
   },
   "outputs": [],
   "source": [
    "ACTION_SPACE_SIZE = env.action_space.n\n",
    "OBSERVATION_SPACE_SIZE = env.observation_space.shape[0]\n",
    "\n",
    "# reward discount\n",
    "GAMMA = 0.95\n",
    "EPISODES =30000\n",
    "\n",
    "ep_rewards = []\n",
    "\n",
    "AGGREGATE_STATS_EVERY = 50"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "lTRr9PZPZ1-1"
   },
   "source": [
    "## 3. Agent Class"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "w_7sLLVzZ1Tj"
   },
   "outputs": [],
   "source": [
    "class PGAgent:\n",
    "\n",
    "  def __init__(self):\n",
    "\n",
    "    # build nn network\n",
    "    self._build_net()\n",
    "    \n",
    "    self.sess = tf.Session()\n",
    "\n",
    "    self.sess.run(tf.global_variables_initializer())\n",
    "\n",
    "    \n",
    "    \n",
    "  # build the policy modle a two layer neural network  \n",
    "  def _build_net(self):\n",
    "    self.states = tf.placeholder(tf.float32, [None,OBSERVATION_SPACE_SIZE])\n",
    "    self.actions = tf.placeholder(tf.int32, [None,])\n",
    "    self.discounted_episode_rewards = tf.placeholder(tf.float32, [None,])\n",
    "\n",
    "    fc1 = tf.layers.dense(\n",
    "        inputs = self.states,\n",
    "        units = 10,\n",
    "        activation = tf.nn.relu,\n",
    "        kernel_initializer=tf.random_normal_initializer(mean=0, stddev=0.3),\n",
    "        bias_initializer=tf.constant_initializer(0.1)\n",
    "    )\n",
    "    \n",
    "    act_logits = tf.layers.dense(\n",
    "        inputs = fc1,\n",
    "        units = ACTION_SPACE_SIZE,\n",
    "        kernel_initializer=tf.random_normal_initializer(mean=0, stddev=0.3),\n",
    "        bias_initializer=tf.constant_initializer(0.1),\n",
    "    )\n",
    "\n",
    "    self.actions_prob = tf.nn.softmax(act_logits)\n",
    "    \n",
    "    #sample an action from predicted probabilities    \n",
    "    self.sample_op = tf.multinomial(logits=act_logits, num_samples=1)\n",
    "\n",
    "    neg_log_prob = tf.reduce_sum(-tf.log(self.actions_prob) * tf.one_hot(self.actions, ACTION_SPACE_SIZE),axis =1)\n",
    "#     neg_log_prob = tf.nn.sparse_softmax_cross_entropy_with_logits(logits=act_logits, labels=self.actions)\n",
    "    loss = tf.reduce_mean(neg_log_prob * self.discounted_episode_rewards)\n",
    "\n",
    "    self.train_op = tf.train.AdamOptimizer(0.001).minimize(loss)\n",
    "\n",
    "  def choose_action(self, states):\n",
    "    action = self.sess.run(self.sample_op, feed_dict={self.states: states[np.newaxis,:]})\n",
    "    return action[0][0]\n",
    "  \n",
    "  def train(self, states, actions, rewards):\n",
    "    discounted_episode_rewards = self.discount_rewards(rewards)\n",
    "    self.sess.run(self.train_op,\n",
    "                  feed_dict = {self.states : states,\n",
    "                               self.actions : actions,\n",
    "                               self.discounted_episode_rewards : discounted_episode_rewards }\n",
    "                  )\n",
    "\n",
    "  def discount_rewards(self, rewards):\n",
    "    discount_rewards = np.zeros_like(rewards)\n",
    "    running_add = 0\n",
    "    for t in reversed(range(len(rewards))):\n",
    "      running_add = running_add * GAMMA + rewards[t]\n",
    "      discount_rewards[t] = running_add\n",
    "\n",
    "      mean = np.mean(discount_rewards)\n",
    "      std = np.std(discount_rewards)\n",
    "      discount_rewards = (discount_rewards - mean)/std\n",
    "\n",
    "      return discount_rewards"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 106
    },
    "colab_type": "code",
    "id": "TUDDhaxOadLa",
    "outputId": "15b478eb-3862-43af-8df2-92ce98e871d7"
   },
   "outputs": [],
   "source": [
    "agent = PGAgent()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "Bpa2BCspawS3"
   },
   "source": [
    "## 4. Train the agent"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "I7j_aM56tO2_"
   },
   "outputs": [],
   "source": [
    "aggr_ep_rewards = {'ep':[],'avg':[],'min':[],'max':[]}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 34
    },
    "colab_type": "code",
    "id": "Xmoxp-PEjN3s",
    "outputId": "739674c0-4cbd-4e0e-e478-4385805a0cb9"
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|###################################################################| 30000/30000 [41:19<00:00, 12.67episodes/s]\n"
     ]
    }
   ],
   "source": [
    "# Iterate over episodes\n",
    "for episode in tqdm(range(1, EPISODES + 1), ascii=True, unit='episodes'):\n",
    "    # Restarting episode - reset episode states,actions, and rewards \n",
    "    episode_states, episode_actions, episode_rewards = [],[],[]\n",
    "    \n",
    "    #Reset single step reward\n",
    "    episode_reward = 0\n",
    "\n",
    "    # Reset environment and get initial state\n",
    "    current_state = env.reset()\n",
    "\n",
    "    # Reset flag and start iterating until episode ends\n",
    "    done = False\n",
    "    while not done:\n",
    "\n",
    "        action = agent.choose_action(current_state)\n",
    "        next_state, reward, done, _ = env.step(action)\n",
    "\n",
    "        # Store [s a r]\n",
    "        episode_states.append(current_state)\n",
    "        episode_actions.append(action)\n",
    "        episode_rewards.append(reward)\n",
    "\n",
    "\n",
    "        # Transform new continous state to new discrete state and count reward\n",
    "        episode_reward += reward\n",
    "\n",
    "#         if not episode % AGGREGATE_STATS_EVERY:\n",
    "#             env.render()\n",
    "\n",
    "        current_state = next_state\n",
    "\n",
    "    agent.train(np.vstack(episode_states), np.array(episode_actions), np.array(episode_rewards))\n",
    "    \n",
    "    \n",
    "    # Append episode reward to a list and log rewards (every given number of episodes)\n",
    "    ep_rewards.append(episode_reward)\n",
    "\n",
    "    if not episode % AGGREGATE_STATS_EVERY or episode == 1:\n",
    "        average_reward = sum(ep_rewards[-AGGREGATE_STATS_EVERY:])/len(ep_rewards[-AGGREGATE_STATS_EVERY:])\n",
    "        min_reward = min(ep_rewards[-AGGREGATE_STATS_EVERY:])\n",
    "        max_reward = max(ep_rewards[-AGGREGATE_STATS_EVERY:])\n",
    "        \n",
    "        aggr_ep_rewards['ep'].append(episode)\n",
    "        aggr_ep_rewards['avg'].append(average_reward)\n",
    "        aggr_ep_rewards['min'].append(min_reward)\n",
    "        aggr_ep_rewards['max'].append(max_reward)\n",
    "        \n",
    "#         agent.tensorboard.update_stats(reward_avg=average_reward, reward_min=min_reward, reward_max=max_reward, epsilon=epsilon)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "QQ22Ry_q4mQS"
   },
   "source": [
    "## 5. Plot episodes vs rewards"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0,0.5,'Rewards')"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(aggr_ep_rewards['ep'], aggr_ep_rewards['avg'], label = 'avg')\n",
    "plt.plot(aggr_ep_rewards['ep'], aggr_ep_rewards['min'], label = 'min')\n",
    "plt.plot(aggr_ep_rewards['ep'], aggr_ep_rewards['max'], label = 'max')\n",
    "plt.legend(loc='upper left')\n",
    "plt.xlabel('Episodes')\n",
    "plt.ylabel('Rewards')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "9ILbxFFfIckN"
   },
   "source": [
    "### Rendering Test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "iFZ1eIgjHwXw"
   },
   "outputs": [],
   "source": [
    "done = False\n",
    "state = env.reset()\n",
    "for i in range(500):\n",
    "# while not done:\n",
    "    action = agent.choose_action(state)\n",
    "    next_state, _, done, _ = env.step(action)\n",
    "    state = next_state\n",
    "    env.render()\n",
    "\n",
    "env.close()\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "accelerator": "GPU",
  "colab": {
   "name": "1_policy_gradient_kearas_cartpole.ipynb",
   "provenance": [],
   "version": "0.3.2"
  },
  "kernelspec": {
   "display_name": "Python (spinningup)",
   "language": "python",
   "name": "spinningup"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
